home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1993 July / InfoMagic USENET CD-ROM July 1993.ISO / sources / x / volume11 / tgif / patch6.05 < prev    next >
Encoding:
Internet Message Format  |  1991-02-12  |  40.3 KB

  1. Path: uunet!world!decwrl!sun-barr!newstop!exodus!CS.UCLA.EDU
  2. From: william@CS.UCLA.EDU (William Cheng)
  3. Newsgroups: comp.sources.x
  4. Subject: v11i067: tgif, Patch6, Part05/06
  5. Message-ID: <7937@exodus.Eng.Sun.COM>
  6. Date: 13 Feb 91 07:32:19 GMT
  7. References: <csx-11i063:tgif@uunet.UU.NET>
  8. Sender: news@exodus.Eng.Sun.COM
  9. Lines: 1384
  10. Approved: argv@sun.com
  11.  
  12. Submitted-by: william@CS.UCLA.EDU (William Cheng)
  13. Posting-number: Volume 11, Issue 67
  14. Archive-name: tgif/patch6.05
  15. Patch-To: tgif: Volume 7, Issue 56-76 (original: tgif-1.2)
  16. Patch-To: tgif: Volume 8, Issue 46-48 (Patch1: tgif-1.2 => tgif-1.9)
  17. Patch-To: tgif: Volume 8, Issue 58-60 (Patch2: tgif-1.9 => tgif-1.12)
  18. Patch-To: tgif: Volume 8, Issue 87-89 (Patch3: tgif-1.12 => tgif-1.13)
  19. Patch-To: tgif: Volume 8, Issue 94 (Patch4: tgif-1.13 => tgif-1.14)
  20. Patch-To: tgif: Volume 8, Issue 95 (Patch5: tgif-1.14 => tgif-1.15)
  21.  
  22. ---------------------------------> cut here <---------------------------------
  23. *** raster.c.orig    Wed Dec 12 14:37:26 1990
  24. --- raster.c    Wed Dec 12 14:37:29 1990
  25. ***************
  26. *** 6,10 ****
  27.   #ifndef lint
  28.   static char RCSid[] =
  29. !       "@(#)$Header: /n/kona/u/tangram/u/william/X11/TGIF/RCS/raster.c,v 1.5 90/07/16 10:51:23 william Exp $";
  30.   #endif
  31.   
  32. --- 6,10 ----
  33.   #ifndef lint
  34.   static char RCSid[] =
  35. !       "@(#)$Header: /n/kona/u/tangram/u/william/X11/TGIF/RCS/raster.c,v 1.8 90/11/01 08:44:35 william Exp $";
  36.   #endif
  37.   
  38. ***************
  39. *** 78,81 ****
  40. --- 78,87 ----
  41.   #include "bitmaps/ls3.bm"
  42.   
  43. + #include "bitmaps/ld0.bm"
  44. + #include "bitmaps/ld1.bm"
  45. + #include "bitmaps/ld2.bm"
  46. + #include "bitmaps/ld3.bm"
  47. + #include "bitmaps/ld4.bm"
  48.   #include "bitmaps/lw0s.bm"
  49.   #include "bitmaps/lw1s.bm"
  50. ***************
  51. *** 94,100 ****
  52. --- 100,119 ----
  53.   #include "bitmaps/ls3s.bm"
  54.   
  55. + #include "bitmaps/ld0s.bm"
  56. + #include "bitmaps/ld1s.bm"
  57. + #include "bitmaps/ld2s.bm"
  58. + #include "bitmaps/ld3s.bm"
  59. + #include "bitmaps/ld4s.bm"
  60.   #include "bitmaps/printer.bm"
  61.   #include "bitmaps/latex.bm"
  62.   
  63. + #include "bitmaps/file.bm"
  64. + #include "bitmaps/special.bm"
  65. + #include "bitmaps/rotate_0.bm"
  66. + #include "bitmaps/rotate_90.bm"
  67. + #include "bitmaps/rotate_180.bm"
  68. + #include "bitmaps/rotate_270.bm"
  69.   GC    rasterGC;
  70.   
  71. ***************
  72. *** 109,113 ****
  73.   Pixmap    lineWidthPixmap[MAXLINEWIDTHS];
  74.   Pixmap    lineTypePixmap[MAXLINETYPES];
  75. ! Pixmap    lineStylePixmap[MAXLINEWIDTHS+MAXLINETYPES+MAXLINESTYLES];
  76.   Pixmap    justPixmap[MAXJUSTS];
  77.   Pixmap    alignHoriPixmap[MAXALIGNS];
  78. --- 128,133 ----
  79.   Pixmap    lineWidthPixmap[MAXLINEWIDTHS];
  80.   Pixmap    lineTypePixmap[MAXLINETYPES];
  81. ! Pixmap    dashPixmap[MAXDASHES];
  82. ! Pixmap    lineStylePixmap[MAXLINEWIDTHS+MAXLINETYPES+MAXDASHES+MAXLINESTYLES];
  83.   Pixmap    justPixmap[MAXJUSTS];
  84.   Pixmap    alignHoriPixmap[MAXALIGNS];
  85. ***************
  86. *** 114,125 ****
  87.   Pixmap    alignVertPixmap[MAXALIGNS];
  88.   Pixmap    shortLineWidthPixmap[MAXLINEWIDTHS];
  89.   Pixmap    whereToPrintPixmap[2];
  90.   Pixmap    shortLineTypePixmap[MAXLINETYPES];
  91.   Pixmap    shortLineStylePixmap[MAXLINESTYLES];
  92.   
  93. - char    * patData[MAXPATTERNS+1];
  94.   int    pat_w[MAXPATTERNS+1], pat_h[MAXPATTERNS+1];
  95.   
  96.   void InitPattern ()
  97.   {
  98. --- 134,152 ----
  99.   Pixmap    alignVertPixmap[MAXALIGNS];
  100.   Pixmap    shortLineWidthPixmap[MAXLINEWIDTHS];
  101. + Pixmap    filePixmap;
  102. + Pixmap    specialPixmap;
  103. + Pixmap    rotatePixmap[4];
  104.   Pixmap    whereToPrintPixmap[2];
  105.   Pixmap    shortLineTypePixmap[MAXLINETYPES];
  106.   Pixmap    shortLineStylePixmap[MAXLINESTYLES];
  107. + Pixmap    shortDashPixmap[MAXDASHES];
  108.   
  109.   int    pat_w[MAXPATTERNS+1], pat_h[MAXPATTERNS+1];
  110. + int    dashListLength[MAXDASHES] = { 0, 2, 2, 2, 4 };
  111. + char    * dashList[MAXDASHES] =
  112. +       {"","\004\014","\010\010","\014\004","\024\004\004\004"};
  113.   
  114. + static char    * patData[MAXPATTERNS+1];
  115.   void InitPattern ()
  116.   {
  117. ***************
  118. *** 224,227 ****
  119. --- 251,265 ----
  120.            lt1_bits, lt1_width, lt1_height);
  121.   
  122. +    dashPixmap[0] = XCreateBitmapFromData (mainDisplay, mainWindow,
  123. +          ld0_bits, ld0_width, ld0_height);
  124. +    dashPixmap[1] = XCreateBitmapFromData (mainDisplay, mainWindow,
  125. +          ld1_bits, ld1_width, ld1_height);
  126. +    dashPixmap[2] = XCreateBitmapFromData (mainDisplay, mainWindow,
  127. +          ld2_bits, ld2_width, ld2_height);
  128. +    dashPixmap[3] = XCreateBitmapFromData (mainDisplay, mainWindow,
  129. +          ld3_bits, ld3_width, ld3_height);
  130. +    dashPixmap[4] = XCreateBitmapFromData (mainDisplay, mainWindow,
  131. +          ld4_bits, ld4_width, ld4_height);
  132.      lineStylePixmap[0] = XCreateBitmapFromData (mainDisplay, mainWindow,
  133.            lw0_bits, lw0_width, lw0_height);
  134. ***************
  135. *** 245,254 ****
  136.   
  137.      lineStylePixmap[9] = XCreateBitmapFromData (mainDisplay, mainWindow,
  138. !          ls0_bits, ls0_width, ls0_height);
  139.      lineStylePixmap[10] = XCreateBitmapFromData (mainDisplay, mainWindow,
  140. !          ls1_bits, ls1_width, ls1_height);
  141.      lineStylePixmap[11] = XCreateBitmapFromData (mainDisplay, mainWindow,
  142. !          ls2_bits, ls2_width, ls2_height);
  143.      lineStylePixmap[12] = XCreateBitmapFromData (mainDisplay, mainWindow,
  144.            ls3_bits, ls3_width, ls3_height);
  145.   
  146. --- 283,303 ----
  147.   
  148.      lineStylePixmap[9] = XCreateBitmapFromData (mainDisplay, mainWindow,
  149. !          ld0_bits, ld0_width, ld0_height);
  150.      lineStylePixmap[10] = XCreateBitmapFromData (mainDisplay, mainWindow,
  151. !          ld1_bits, ld1_width, ld1_height);
  152.      lineStylePixmap[11] = XCreateBitmapFromData (mainDisplay, mainWindow,
  153. !          ld2_bits, ld2_width, ld2_height);
  154.      lineStylePixmap[12] = XCreateBitmapFromData (mainDisplay, mainWindow,
  155. +          ld3_bits, ld3_width, ld3_height);
  156. +    lineStylePixmap[13] = XCreateBitmapFromData (mainDisplay, mainWindow,
  157. +          ld4_bits, ld4_width, ld4_height);
  158. +    lineStylePixmap[14] = XCreateBitmapFromData (mainDisplay, mainWindow,
  159. +          ls0_bits, ls0_width, ls0_height);
  160. +    lineStylePixmap[15] = XCreateBitmapFromData (mainDisplay, mainWindow,
  161. +          ls1_bits, ls1_width, ls1_height);
  162. +    lineStylePixmap[16] = XCreateBitmapFromData (mainDisplay, mainWindow,
  163. +          ls2_bits, ls2_width, ls2_height);
  164. +    lineStylePixmap[17] = XCreateBitmapFromData (mainDisplay, mainWindow,
  165.            ls3_bits, ls3_width, ls3_height);
  166.   
  167. ***************
  168. *** 262,265 ****
  169. --- 311,329 ----
  170.            ls3s_bits, ls3s_width, ls3s_height);
  171.   
  172. +    filePixmap = XCreateBitmapFromData (mainDisplay, mainWindow,
  173. +          file_bits, file_width, file_height);
  174. +    specialPixmap = XCreateBitmapFromData (mainDisplay, mainWindow,
  175. +          special_bits, special_width, special_height);
  176. +    rotatePixmap[0] = XCreateBitmapFromData (mainDisplay, mainWindow,
  177. +          rotate_0_bits, rotate_0_width, rotate_0_height);
  178. +    rotatePixmap[1] = XCreateBitmapFromData (mainDisplay, mainWindow,
  179. +          rotate_90_bits, rotate_90_width, rotate_90_height);
  180. +    rotatePixmap[2] = XCreateBitmapFromData (mainDisplay, mainWindow,
  181. +          rotate_180_bits, rotate_180_width, rotate_180_height);
  182. +    rotatePixmap[3] = XCreateBitmapFromData (mainDisplay, mainWindow,
  183. +          rotate_270_bits, rotate_270_width, rotate_270_height);
  184.      whereToPrintPixmap[PRINTER] = XCreateBitmapFromData (mainDisplay, mainWindow,
  185.            printer_bits, printer_width, printer_height);
  186. ***************
  187. *** 272,275 ****
  188. --- 336,350 ----
  189.            lt1s_bits, lt1s_width, lt1s_height);
  190.   
  191. +    shortDashPixmap[0] = XCreateBitmapFromData (mainDisplay, mainWindow,
  192. +          ld0s_bits, ld0s_width, ld0s_height);
  193. +    shortDashPixmap[1] = XCreateBitmapFromData (mainDisplay, mainWindow,
  194. +          ld1s_bits, ld1s_width, ld1s_height);
  195. +    shortDashPixmap[2] = XCreateBitmapFromData (mainDisplay, mainWindow,
  196. +          ld2s_bits, ld2s_width, ld2s_height);
  197. +    shortDashPixmap[3] = XCreateBitmapFromData (mainDisplay, mainWindow,
  198. +          ld3s_bits, ld3s_width, ld3s_height);
  199. +    shortDashPixmap[4] = XCreateBitmapFromData (mainDisplay, mainWindow,
  200. +          ld4s_bits, ld4s_width, ld4s_height);
  201.      shortLineWidthPixmap[0] = XCreateBitmapFromData (mainDisplay, mainWindow,
  202.            lw0s_bits, lw0s_width, lw0s_height);
  203. ***************
  204. *** 304,308 ****
  205.   {
  206.      ShowMode ();
  207. !    ShowColor ();
  208.      ShowHoriAlign ();
  209.      ShowVertAlign ();
  210. --- 379,383 ----
  211.   {
  212.      ShowMode ();
  213. !    ShowColor (FALSE);
  214.      ShowHoriAlign ();
  215.      ShowVertAlign ();
  216. ***************
  217. *** 309,316 ****
  218.      ShowJust ();
  219.      ShowCurFont ();
  220.      ShowLineWidth ();
  221. -    ShowWhereToPrint ();
  222. -    ShowLineType ();
  223.      ShowLineStyle ();
  224.      ShowFill ();
  225.      ShowPen ();
  226. --- 384,395 ----
  227.      ShowJust ();
  228.      ShowCurFont ();
  229. +    ShowRotate ();
  230. +    ShowSpecial ();
  231.      ShowLineWidth ();
  232.      ShowLineStyle ();
  233. +    ShowLineType ();
  234. +    ShowDash ();
  235. +    ShowWhereToPrint ();
  236. +    ShowFile ();
  237.      ShowFill ();
  238.      ShowPen ();
  239. ***************
  240. *** 329,332 ****
  241. --- 408,413 ----
  242.      for (i = 0; i < MAXLINETYPES; i++)
  243.         XFreePixmap (mainDisplay, lineTypePixmap[i]);
  244. +    for (i = 0; i < MAXDASHES; i++)
  245. +       XFreePixmap (mainDisplay, dashPixmap[i]);
  246.      for (i = 0; i < MAXJUSTS; i++) XFreePixmap (mainDisplay, justPixmap[i]);
  247.      XFreePixmap (mainDisplay, alignHoriPixmap[0]);
  248. ***************
  249. *** 337,340 ****
  250. --- 418,425 ----
  251.      for (i = 0; i < MAXLINEWIDTHS; i++)
  252.         XFreePixmap (mainDisplay, shortLineWidthPixmap[i]);
  253. +    XFreePixmap (mainDisplay, filePixmap);
  254. +    XFreePixmap (mainDisplay, specialPixmap);
  255. +    for (i = 0; i < 4; i++)
  256. +       XFreePixmap (mainDisplay, rotatePixmap[i]);
  257.      for (i = 0; i < 2; i++)
  258.         XFreePixmap (mainDisplay, whereToPrintPixmap[i]);
  259. ***************
  260. *** 343,346 ****
  261. --- 428,433 ----
  262.      for (i = 0; i < MAXLINESTYLES; i++)
  263.         XFreePixmap (mainDisplay, shortLineStylePixmap[i]);
  264. +    for (i = 0; i < MAXDASHES; i++)
  265. +       XFreePixmap (mainDisplay, shortDashPixmap[i]);
  266.   
  267.      XFreeGC (mainDisplay, rasterGC);
  268. *** select.c.orig    Wed Dec 12 14:37:41 1990
  269. --- select.c    Wed Dec 12 14:37:45 1990
  270. ***************
  271. *** 6,10 ****
  272.   #ifndef lint
  273.   static char RCSid[] =
  274. !       "@(#)$Header: /n/kona/u/tangram/u/william/X11/TGIF/RCS/select.c,v 1.7 90/07/27 14:37:59 william Exp $";
  275.   #endif
  276.   
  277. --- 6,10 ----
  278.   #ifndef lint
  279.   static char RCSid[] =
  280. !       "@(#)$Header: /n/kona/u/tangram/u/william/X11/TGIF/RCS/select.c,v 1.9 90/11/01 18:08:44 william Exp $";
  281.   #endif
  282.   
  283. ***************
  284. *** 624,639 ****
  285.   }
  286.   
  287. ! void CopySelToCut ()
  288.   {
  289. !    register struct SelRec    * sel_ptr, * top_cut_ptr, * bot_cut_ptr;
  290. !    struct SelRec        * top_sel_ptr, * bot_sel_ptr;
  291.   
  292. -    if (topSel == NULL) return;
  293. -    JustDupSelObj (&top_sel_ptr, &bot_sel_ptr);
  294.      top_cut_ptr = (struct SelRec *) calloc (2, sizeof (struct SelRec));
  295.      bot_cut_ptr = &top_cut_ptr[1];
  296. !    top_cut_ptr->next = top_sel_ptr; bot_cut_ptr->next = bot_sel_ptr;
  297.      top_cut_ptr->prev = topCutSel; bot_cut_ptr->prev = botCutSel;
  298.      topCutSel = top_cut_ptr; botCutSel = bot_cut_ptr;
  299. --- 624,635 ----
  300.   }
  301.   
  302. ! void PushToCutBuffer (TopSelPtr, BotSelPtr)
  303. !    struct SelRec    * TopSelPtr, * BotSelPtr;
  304.   {
  305. !    register struct SelRec    * top_cut_ptr, * bot_cut_ptr;
  306.   
  307.      top_cut_ptr = (struct SelRec *) calloc (2, sizeof (struct SelRec));
  308.      bot_cut_ptr = &top_cut_ptr[1];
  309. !    top_cut_ptr->next = TopSelPtr; bot_cut_ptr->next = BotSelPtr;
  310.      top_cut_ptr->prev = topCutSel; bot_cut_ptr->prev = botCutSel;
  311.      topCutSel = top_cut_ptr; botCutSel = bot_cut_ptr;
  312. ***************
  313. *** 640,649 ****
  314.   }
  315.   
  316. ! void DelAllSelObj ()
  317.   {
  318. !    register struct SelRec    * sel_ptr, * top_cut_ptr, * bot_cut_ptr;
  319.   
  320.      if (topSel == NULL) return;
  321.   
  322.      HighLightReverse ();
  323.      tmpTopObj = tmpBotObj = NULL;
  324. --- 636,653 ----
  325.   }
  326.   
  327. ! void CopySelToCut ()
  328.   {
  329. !    struct SelRec    * top_sel_ptr, * bot_sel_ptr;
  330.   
  331.      if (topSel == NULL) return;
  332.   
  333. +    JustDupSelObj (&top_sel_ptr, &bot_sel_ptr);
  334. +    PushToCutBuffer (top_sel_ptr, bot_sel_ptr);
  335. + }
  336. + void DelAllSelObj ()
  337. + {
  338. +    if (topSel == NULL) return;
  339.      HighLightReverse ();
  340.      tmpTopObj = tmpBotObj = NULL;
  341. ***************
  342. *** 650,658 ****
  343.      BreakSel ();
  344.   
  345. !    top_cut_ptr = (struct SelRec *) calloc (2, sizeof (struct SelRec));
  346. !    bot_cut_ptr = &top_cut_ptr[1];
  347. !    top_cut_ptr->next = topSel; bot_cut_ptr->next = botSel;
  348. !    top_cut_ptr->prev = topCutSel; bot_cut_ptr->prev = botCutSel;
  349. !    topCutSel = top_cut_ptr; botCutSel = bot_cut_ptr;
  350.   
  351.      topSel = botSel = NULL;
  352. --- 654,658 ----
  353.      BreakSel ();
  354.   
  355. !    PushToCutBuffer (topSel, botSel);
  356.   
  357.      topSel = botSel = NULL;
  358. *** setup.c.orig    Wed Dec 12 14:37:52 1990
  359. --- setup.c    Wed Dec 12 14:37:53 1990
  360. ***************
  361. *** 6,10 ****
  362.   #ifndef lint
  363.   static char RCSid[] =
  364. !       "@(#)$Header: /n/kona/u/tangram/u/william/X11/TGIF/RCS/setup.c,v 1.12 90/08/17 09:32:53 william Exp $";
  365.   #endif
  366.   
  367. --- 6,10 ----
  368.   #ifndef lint
  369.   static char RCSid[] =
  370. !       "@(#)$Header: /n/kona/u/tangram/u/william/X11/TGIF/RCS/setup.c,v 1.16 90/11/02 09:20:33 william Exp $";
  371.   #endif
  372.   
  373. ***************
  374. *** 25,28 ****
  375. --- 25,29 ----
  376.   #include "ruler.e"
  377.   #include "scroll.e"
  378. + #include "stk.e"
  379.   
  380.   extern    char    * getenv ();
  381. ***************
  382. *** 38,42 ****
  383.   #define DRAW_WINDOW_W (5*PIX_PER_INCH)
  384.   #define DRAW_WINDOW_H (5*PIX_PER_INCH)
  385. ! #define CHOICE_WINDOW_W (6*CHOICE_IMAGE_W)
  386.   #define CHOICE_WINDOW_H (2*CHOICE_IMAGE_H)
  387.   #define VSBAR_H (DRAW_WINDOW_H+RULER_W+2*BRDR_W)
  388. --- 39,43 ----
  389.   #define DRAW_WINDOW_W (5*PIX_PER_INCH)
  390.   #define DRAW_WINDOW_H (5*PIX_PER_INCH)
  391. ! #define CHOICE_WINDOW_W (8*CHOICE_IMAGE_W)
  392.   #define CHOICE_WINDOW_H (2*CHOICE_IMAGE_H)
  393.   #define VSBAR_H (DRAW_WINDOW_H+RULER_W+2*BRDR_W)
  394. ***************
  395. *** 110,115 ****
  396.   int    reverseVideo = FALSE;
  397.   
  398. ! char    drawPath[255];
  399.   
  400.   int    initDrawWinW, initDrawWinH;
  401.   
  402. --- 111,121 ----
  403.   int    reverseVideo = FALSE;
  404.   
  405. ! char    drawPath[MAXPATHLENGTH];
  406. ! char    bootDir[MAXPATHLENGTH];
  407. ! char    homeDir[MAXPATHLENGTH];
  408.   
  409. + int    symPathNumEntries = INVALID;
  410. + char    * * symPath;
  411.   int    initDrawWinW, initDrawWinH;
  412.   
  413. ***************
  414. *** 233,236 ****
  415. --- 239,252 ----
  416.            strcpy (drawPath, c_ptr);
  417.   
  418. +    if ((c_ptr = getenv ("HOME")) == NULL)
  419. +       strcpy (homeDir, "/");
  420. +    else
  421. +       if (strlen (c_ptr) >= MAXPATHLENGTH-1)
  422. +          strcpy (homeDir, "/");
  423. +       else
  424. +          strcpy (homeDir, c_ptr);
  425. +    if (getwd (bootDir) == NULL) strcpy (bootDir, ".");
  426.      sizehints.flags = PPosition | PSize | PMinSize;
  427.      sizehints.x = 0;
  428. ***************
  429. *** 305,308 ****
  430. --- 321,325 ----
  431.      InitMenu ();
  432.      InitNames ();
  433. +    InitStk ();
  434.   
  435.      if ((titleWindow = XCreateSimpleWindow (mainDisplay, mainWindow, 0, 0,
  436. *** special.c.orig    Wed Dec 12 14:38:01 1990
  437. --- special.c    Wed Dec 12 14:38:03 1990
  438. ***************
  439. *** 6,10 ****
  440.   #ifndef lint
  441.   static char RCSid[] =
  442. !       "@(#)$Header: /n/kona/u/tangram/u/william/X11/TGIF/RCS/special.c,v 1.10 90/08/17 13:40:34 william Exp $";
  443.   #endif
  444.   
  445. --- 6,10 ----
  446.   #ifndef lint
  447.   static char RCSid[] =
  448. !       "@(#)$Header: /n/kona/u/tangram/u/william/X11/TGIF/RCS/special.c,v 1.14 90/11/01 18:09:43 william Exp $";
  449.   #endif
  450.   
  451. ***************
  452. *** 102,105 ****
  453. --- 102,127 ----
  454.   }
  455.   
  456. + struct ObjRec * GetObjRepresentation (PathName, SymName)
  457. +    char    * PathName, * SymName;
  458. + {
  459. +    char            file_name[MAXPATHLENGTH];
  460. +    struct ObjRec    * obj_ptr;
  461. +    FILE            * fp;
  462. +    sprintf (file_name, "%s/%s.sym", PathName, SymName);
  463. +    if ((fp = fopen (file_name, "r")) == NULL)
  464. +    { printf ("Can not open '%s'\n", file_name); return (NULL); }
  465. +    if ((obj_ptr = ReadSymbol (fp)) != NULL)
  466. +    {
  467. +       obj_ptr->id = objId++;
  468. +       obj_ptr->dirty = FALSE;
  469. +       strcpy (obj_ptr->detail.r->s, SymName);
  470. +       AdjObjBBox (obj_ptr);
  471. +    }
  472. +    fclose (fp);
  473. +    return (obj_ptr);
  474. + }
  475.   void PlaceTopObj ()
  476.   {
  477. ***************
  478. *** 174,183 ****
  479.   void Instantiate ()
  480.   {
  481. !    char            file_name[MAXPATHLENGTH], sym_name[MAXPATHLENGTH], full_name[MAXPATHLENGTH];
  482.      struct ObjRec    * obj_ptr;
  483.      FILE            * fp;
  484.   
  485. !    if (SelectFileName ("sym", "PLEASE SELECT A SYMBOL TO INSTANTIATE ...",
  486. !          sym_name) == INVALID) return;
  487.   
  488.      TieLooseEnds ();
  489. --- 196,205 ----
  490.   void Instantiate ()
  491.   {
  492. !    char            file_name[MAXPATHLENGTH], full_name[MAXPATHLENGTH];
  493. !    char            sym_name[MAXPATHLENGTH], path_name[MAXPATHLENGTH];
  494.      struct ObjRec    * obj_ptr;
  495.      FILE            * fp;
  496.   
  497. !    if (SelectSymbolName (sym_name, path_name) == INVALID) return;
  498.   
  499.      TieLooseEnds ();
  500. ***************
  501. *** 184,192 ****
  502.      SetCurChoice (NOTHING);
  503.   
  504. !    sprintf (file_name, "%s.sym", sym_name);
  505. !    strcpy (full_name, curDomainName);
  506. !    if (*curDomainName != '\0') strcat (full_name, "/");
  507. !    strcat (full_name, file_name);
  508. !    if ((fp = fopen (full_name, "r")) == NULL)
  509.      { printf ("Can not open %s\n", file_name); return; }
  510.   
  511. --- 206,211 ----
  512.      SetCurChoice (NOTHING);
  513.   
  514. !    sprintf (file_name, "%s/%s.sym", path_name, sym_name);
  515. !    if ((fp = fopen (file_name, "r")) == NULL)
  516.      { printf ("Can not open %s\n", file_name); return; }
  517.   
  518. ***************
  519. *** 281,285 ****
  520.   {
  521.      char         icon_name[MAXPATHLENGTH], file_name[MAXPATHLENGTH];
  522. !    char         s[MAXPATHLENGTH];
  523.      FILE            * fp;
  524.      struct ObjRec    * saved_obj_ptr;
  525. --- 300,304 ----
  526.   {
  527.      char         icon_name[MAXPATHLENGTH], file_name[MAXPATHLENGTH];
  528. !    char         s[MAXPATHLENGTH], icon_full_name[MAXPATHLENGTH];
  529.      FILE            * fp;
  530.      struct ObjRec    * saved_obj_ptr;
  531. ***************
  532. *** 304,310 ****
  533.            }
  534.            else if (strcmp (&icon_name[len-4], ".sym") != 0)
  535. !             strcat (icon_name, ".sym");
  536.   
  537. !          if (strlen (icon_name) == 4)
  538.            {
  539.               Msg ("No file name specified.  File not saved.");
  540. --- 323,332 ----
  541.            }
  542.            else if (strcmp (&icon_name[len-4], ".sym") != 0)
  543. !          {
  544. !             strcpy (icon_full_name, icon_name);
  545. !             strcat (icon_full_name, ".sym");
  546. !          }
  547.   
  548. !          if (strlen (icon_full_name) == 4)
  549.            {
  550.               Msg ("No file name specified.  File not saved.");
  551. ***************
  552. *** 313,322 ****
  553.         }
  554.         else
  555. !          strcat (icon_name, ".sym");
  556.   
  557.         if (*curDomainName != '\0')
  558. !          sprintf (file_name, "%s/%s", curDomainName, icon_name);
  559.         else
  560. !          sprintf (file_name, "%s", icon_name);
  561.         if (!OkayToCreateFile (file_name)) return;
  562.         if ((fp = fopen (file_name, "w")) == NULL)
  563. --- 335,347 ----
  564.         }
  565.         else
  566. !       {
  567. !          strcpy (icon_full_name, icon_name);
  568. !          strcat (icon_full_name, ".sym");
  569. !       }
  570.   
  571.         if (*curDomainName != '\0')
  572. !          sprintf (file_name, "%s/%s", curDomainName, icon_full_name);
  573.         else
  574. !          sprintf (file_name, "%s", icon_full_name);
  575.         if (!OkayToCreateFile (file_name)) return;
  576.         if ((fp = fopen (file_name, "w")) == NULL)
  577. *** spline.c.orig    Wed Dec 12 14:38:14 1990
  578. --- spline.c    Wed Dec 12 14:38:16 1990
  579. ***************
  580. *** 6,10 ****
  581.   #ifndef lint
  582.   static char RCSid[] =
  583. !       "@(#)$Header: /n/kona/u/tangram/u/william/X11/TGIF/RCS/spline.c,v 1.3 90/07/16 10:58:15 william Exp $";
  584.   #endif
  585.   
  586. --- 6,10 ----
  587.   #ifndef lint
  588.   static char RCSid[] =
  589. !       "@(#)$Header: /n/kona/u/tangram/u/william/X11/TGIF/RCS/spline.c,v 1.5 90/11/01 08:41:00 william Exp $";
  590.   #endif
  591.   
  592. ***************
  593. *** 164,170 ****
  594.   static XPoint arrow_v[4];
  595.   
  596. ! void DrawSplinePolyObj (Win, XOff, YOff, Fill, Width, Pen, Pixel, PolyPtr)
  597.      Window        Win;
  598. !    int            XOff, YOff, Fill, Width, Pen, Pixel;
  599.      struct PolyRec    * PolyPtr;
  600.   {
  601. --- 164,170 ----
  602.   static XPoint arrow_v[4];
  603.   
  604. ! void DrawSplinePolyObj (Win, XOff, YOff, Fill, Width, Pen, Dash, Pixel, PolyPtr)
  605.      Window        Win;
  606. !    int            XOff, YOff, Fill, Width, Pen, Dash, Pixel;
  607.      struct PolyRec    * PolyPtr;
  608.   {
  609. ***************
  610. *** 199,205 ****
  611.         values.stipple = patPixmap[Pen];
  612.         values.line_width = widthOfLine[Width] >> zoomScale;
  613.         XChangeGC (mainDisplay, drawGC,
  614. !             GCForeground | GCFunction | GCFillStyle | GCStipple | GCLineWidth,
  615. !             &values);
  616.   
  617.         XDrawLines (mainDisplay, Win, drawGC, sv, sn, CoordModeOrigin);
  618. --- 199,213 ----
  619.         values.stipple = patPixmap[Pen];
  620.         values.line_width = widthOfLine[Width] >> zoomScale;
  621. +       if (Dash != 0)
  622. +       {
  623. +          XSetDashes (mainDisplay, drawGC, 0, dashList[Dash],
  624. +                dashListLength[Dash]);
  625. +          values.line_style = LineOnOffDash;
  626. +       }
  627. +       else
  628. +          values.line_style = LineSolid;
  629.         XChangeGC (mainDisplay, drawGC,
  630. !             GCForeground | GCFunction | GCFillStyle | GCStipple | GCLineWidth |
  631. !             GCLineStyle, &values);
  632.   
  633.         XDrawLines (mainDisplay, Win, drawGC, sv, sn, CoordModeOrigin);
  634. ***************
  635. *** 280,286 ****
  636.   }
  637.   
  638. ! void DrawSplinePolygonObj (Win, XOff, YOff, Fill, Width, Pen, Pixel, PolygonPtr)
  639.      Window        Win;
  640. !    int            XOff, YOff, Fill, Width, Pen, Pixel;
  641.      struct PolygonRec    * PolygonPtr;
  642.   {
  643. --- 288,294 ----
  644.   }
  645.   
  646. ! void DrawSplinePolygonObj (Win,XOff,YOff,Fill,Width,Pen,Dash,Pixel,PolygonPtr)
  647.      Window        Win;
  648. !    int            XOff, YOff, Fill, Width, Pen, Dash, Pixel;
  649.      struct PolygonRec    * PolygonPtr;
  650.   {
  651. ***************
  652. *** 308,314 ****
  653.         values.stipple = patPixmap[Pen];
  654.         values.line_width = widthOfLine[Width] >> zoomScale;
  655.         XChangeGC (mainDisplay, drawGC,
  656. !             GCForeground | GCFunction | GCFillStyle | GCStipple | GCLineWidth,
  657. !             &values);
  658.   
  659.         XDrawLines (mainDisplay, Win, drawGC, sv, sn, CoordModeOrigin);
  660. --- 316,330 ----
  661.         values.stipple = patPixmap[Pen];
  662.         values.line_width = widthOfLine[Width] >> zoomScale;
  663. +       if (Dash != 0)
  664. +       {
  665. +          XSetDashes (mainDisplay, drawGC, 0, dashList[Dash],
  666. +                dashListLength[Dash]);
  667. +          values.line_style = LineOnOffDash;
  668. +       }
  669. +       else
  670. +          values.line_style = LineSolid;
  671.         XChangeGC (mainDisplay, drawGC,
  672. !             GCForeground | GCFunction | GCFillStyle | GCStipple | GCLineWidth |
  673. !             GCLineStyle, &values);
  674.   
  675.         XDrawLines (mainDisplay, Win, drawGC, sv, sn, CoordModeOrigin);
  676. *** stk.c.orig    Wed Dec 12 14:38:22 1990
  677. --- stk.c    Wed Dec 12 14:38:23 1990
  678. ***************
  679. *** 6,10 ****
  680.   #ifndef lint
  681.   static char RCSid[] =
  682. !       "@(#)$Header: /n/kona/u/tangram/u/william/X11/TGIF/RCS/stk.c,v 1.6 90/08/15 16:00:13 william Exp $";
  683.   #endif
  684.   
  685. --- 6,10 ----
  686.   #ifndef lint
  687.   static char RCSid[] =
  688. !       "@(#)$Header: /n/kona/u/tangram/u/william/X11/TGIF/RCS/stk.c,v 1.11 90/11/06 16:42:39 william Exp $";
  689.   #endif
  690.   
  691. ***************
  692. *** 45,48 ****
  693. --- 45,53 ----
  694.   }
  695.   
  696. + void InitStk ()
  697. + {
  698. +    curSymDir[0] = '\0';
  699. + }
  700.   void PushIcon ()
  701.   {
  702. ***************
  703. *** 49,54 ****
  704.      struct StkRec    * stk_ptr;
  705.      struct ObjRec    * obj_ptr;
  706.      char            file_name[MAXPATHLENGTH], s[MAXPATHLENGTH];
  707. -    char            full_name[MAXPATHLENGTH];
  708.      FILE            * fp;
  709.   
  710. --- 54,59 ----
  711.      struct StkRec    * stk_ptr;
  712.      struct ObjRec    * obj_ptr;
  713. +    char            sym_name[MAXPATHLENGTH], path_name[MAXPATHLENGTH];
  714.      char            file_name[MAXPATHLENGTH], s[MAXPATHLENGTH];
  715.      FILE            * fp;
  716.   
  717. ***************
  718. *** 59,68 ****
  719.      }
  720.   
  721. !    sprintf (file_name, "%s.sym", topSel->obj->detail.r->s);
  722. !    strcpy (full_name, curDomainName);
  723. !    if (*curDomainName != '\0') strcat (full_name, "/");
  724. !    strcat (full_name, file_name);
  725.   
  726. !    if ((fp = fopen (full_name, "r")) == NULL)
  727.      {
  728.         sprintf (s, "Can not open '%s', icon not pushed into.", file_name);
  729. --- 64,79 ----
  730.      }
  731.   
  732. !    strcpy (sym_name, topSel->obj->detail.r->s);
  733. !    if (!GetSymbolPath (sym_name, path_name))
  734. !    {
  735. !       sprintf (s, "Can not find '%s.sym' in %s", sym_name, curDomainPath);
  736. !       Msg (s);
  737. !       return;
  738. !    }
  739.   
  740. !    strcat (sym_name, ".sym");
  741. !    sprintf (file_name, "%s/%s", path_name, sym_name);
  742. !    if ((fp = fopen (file_name, "r")) == NULL)
  743.      {
  744.         sprintf (s, "Can not open '%s', icon not pushed into.", file_name);
  745. ***************
  746. *** 101,107 ****
  747.   
  748.      topObj = botObj = NULL;
  749.      if (stk_ptr->name_valid = curFileDefined)
  750. !       strcpy (stk_ptr->name, curFileName);
  751.      strcpy (stk_ptr->domain, curDomainName);
  752.      topStk = stk_ptr;
  753.   
  754. --- 112,122 ----
  755.   
  756.      topObj = botObj = NULL;
  757. +    strcpy (stk_ptr->dir, curDir);
  758.      if (stk_ptr->name_valid = curFileDefined)
  759. !       strcat (stk_ptr->name, curFileName);
  760. !    strcpy (stk_ptr->sym_dir, curSymDir);
  761.      strcpy (stk_ptr->domain, curDomainName);
  762.      topStk = stk_ptr;
  763.   
  764. ***************
  765. *** 110,113 ****
  766. --- 125,129 ----
  767.      CleanUpDrawingWindow ();
  768.      XClearWindow (mainDisplay, drawWindow);
  769. +    SetFileModified (FALSE);
  770.   
  771.      while (ReadObj (fp, &obj_ptr, FALSE))
  772. ***************
  773. *** 127,134 ****
  774.   
  775.      fclose (fp);
  776. !    strcpy (curFileName, file_name);
  777.      curFileDefined = TRUE;
  778.   
  779. -    SetFileModified (FALSE);
  780.      sprintf (s, "Current file is '%s'.", file_name);
  781.      Msg (s);
  782. --- 143,150 ----
  783.   
  784.      fclose (fp);
  785. !    strcpy (curFileName, sym_name);
  786. !    strcpy (curSymDir, path_name);
  787.      curFileDefined = TRUE;
  788.   
  789.      sprintf (s, "Current file is '%s'.", file_name);
  790.      Msg (s);
  791. ***************
  792. *** 179,186 ****
  793.      topObj = topStk->first;
  794.      botObj = topStk->last;
  795.      if (curFileDefined = topStk->name_valid)
  796.      {
  797.         strcpy (curFileName, topStk->name);
  798. !       sprintf (dummy, "Poping back to '%s'.", curFileName);
  799.         Msg (dummy);
  800.      }
  801. --- 195,207 ----
  802.      topObj = topStk->first;
  803.      botObj = topStk->last;
  804. +    strcpy (curDomainName, topStk->domain);
  805. +    strcpy (curSymDir, topStk->sym_dir);
  806.      if (curFileDefined = topStk->name_valid)
  807.      {
  808.         strcpy (curFileName, topStk->name);
  809. !       if (*curSymDir == '\0')
  810. !          sprintf (dummy, "Poping back to '%s/%s'.", topStk->dir, curFileName);
  811. !       else
  812. !          sprintf (dummy, "Poping back to '%s/%s'.", curSymDir, curFileName);
  813.         Msg (dummy);
  814.      }
  815. ***************
  816. *** 190,194 ****
  817.         Msg (dummy);
  818.      }
  819. !    strcpy (curDomainName, topStk->domain);
  820.      topSel = botSel = (struct SelRec *) calloc (1, sizeof(struct SelRec));
  821.      topSel->next = NULL;
  822. --- 211,222 ----
  823.         Msg (dummy);
  824.      }
  825. !    if (strcmp (curDir, topStk->dir) != 0)
  826. !    {
  827. !       strcpy (curDir, topStk->dir);
  828. !       UpdateDirInfo ();
  829. !    }
  830. !    else
  831. !       strcpy (curDir, topStk->dir);
  832.      topSel = botSel = (struct SelRec *) calloc (1, sizeof(struct SelRec));
  833.      topSel->next = NULL;
  834. ***************
  835. *** 222,224 ****
  836. --- 250,253 ----
  837.         cfree (topStk);
  838.      }
  839. +    curSymDir[0] = '\0';
  840.   }
  841. *** text.c.orig    Wed Dec 12 14:39:40 1990
  842. --- text.c    Wed Dec 12 14:39:46 1990
  843. ***************
  844. *** 6,10 ****
  845.   #ifndef lint
  846.   static char RCSid[] =
  847. !       "@(#)$Header: /n/kona/u/tangram/u/william/X11/TGIF/RCS/text.c,v 1.18 90/08/21 16:24:22 william Exp $";
  848.   #endif
  849.   
  850. --- 6,10 ----
  851.   #ifndef lint
  852.   static char RCSid[] =
  853. !       "@(#)$Header: /n/kona/u/tangram/u/william/X11/TGIF/RCS/text.c,v 1.22 90/11/10 13:51:14 william Exp $";
  854.   #endif
  855.   
  856. ***************
  857. *** 125,128 ****
  858. --- 125,129 ----
  859.   static Pixmap    textBackingPixmap;
  860.   static int    textBackingPixmapSize = INVALID;
  861. + static GC    rotateGC = NULL;
  862.   
  863.   void CleanUpText ()
  864. ***************
  865. *** 133,136 ****
  866. --- 134,138 ----
  867.         textBackingPixmapSize = INVALID;
  868.      }
  869. +    if (rotateGC != NULL) XFreeGC (mainDisplay, rotateGC);
  870.   }
  871.   
  872. ***************
  873. *** 265,278 ****
  874.               textBackingPixmapSize = max(w,h);
  875.            }
  876.   
  877. !          XSetForeground (mainDisplay, defaultGC, 0);
  878. !          XFillRectangle (mainDisplay, textBackingPixmap, defaultGC, 0, 0, w, h);
  879. !          XSetForeground (mainDisplay, defaultGC, myFgPixel);
  880.   
  881. !          XSetFont (mainDisplay, revDefaultGC, canvasFontPtr->fid);
  882. !          XDrawImageString (mainDisplay, textBackingPixmap, revDefaultGC, 0,
  883.                  canvasFontAsc, Str, len);
  884.            from_image = XGetImage (mainDisplay, textBackingPixmap, 0, 0, w, h, 1,
  885. !                XYPixmap);
  886.   
  887.            values.foreground = colorPixels[ColorIndex];
  888. --- 267,290 ----
  889.               textBackingPixmapSize = max(w,h);
  890.            }
  891. +          if (rotateGC == NULL)
  892. +          {
  893. +             values.foreground = 1;
  894. +             values.background = 0;
  895. +             values.fill_style = FillSolid;
  896. +             values.function = GXcopy;
  897. +             rotateGC = XCreateGC (mainDisplay, drawWindow,
  898. +                   GCForeground | GCBackground | GCFillStyle | GCFunction,
  899. +                   &values);
  900. +          }
  901.   
  902. !          XSetForeground (mainDisplay, rotateGC, 0);
  903. !          XFillRectangle (mainDisplay, textBackingPixmap, rotateGC, 0, 0, w, h);
  904. !          XSetForeground (mainDisplay, rotateGC, 1);
  905.   
  906. !          XSetFont (mainDisplay, rotateGC, canvasFontPtr->fid);
  907. !          XDrawString (mainDisplay, textBackingPixmap, rotateGC, 0,
  908.                  canvasFontAsc, Str, len);
  909.            from_image = XGetImage (mainDisplay, textBackingPixmap, 0, 0, w, h, 1,
  910. !                ZPixmap);
  911.   
  912.            values.foreground = colorPixels[ColorIndex];
  913. ***************
  914. *** 592,596 ****
  915.            PopCurFont ();
  916.            ShowJust ();
  917. !          ShowColor ();
  918.            ShowCurFont ();
  919.            editingText = FALSE;
  920. --- 604,608 ----
  921.            PopCurFont ();
  922.            ShowJust ();
  923. !          ShowColor (FALSE);
  924.            ShowCurFont ();
  925.            editingText = FALSE;
  926. ***************
  927. *** 674,678 ****
  928.         PopCurFont ();
  929.         ShowJust ();
  930. !       ShowColor ();
  931.         ShowCurFont ();
  932.         editingText = FALSE;
  933. --- 686,690 ----
  934.         PopCurFont ();
  935.         ShowJust ();
  936. !       ShowColor (FALSE);
  937.         ShowCurFont ();
  938.         editingText = FALSE;
  939. ***************
  940. *** 811,815 ****
  941.               ShowPen ();
  942.               colorIndex = obj_ptr->color;
  943. !             ShowColor ();
  944.               ShowCurFont ();
  945.   
  946. --- 823,827 ----
  947.               ShowPen ();
  948.               colorIndex = obj_ptr->color;
  949. !             ShowColor (FALSE);
  950.               ShowCurFont ();
  951.   
  952. ***************
  953. *** 1375,1379 ****
  954.      int                PRTGIF;
  955.   {
  956. !    int            x, y, font_size, xinc, yinc;
  957.      struct StrRec    * s_ptr;
  958.      struct TextRec    * text_ptr = ObjPtr->detail.t;
  959. --- 1387,1391 ----
  960.      int                PRTGIF;
  961.   {
  962. !    int            x, y, font_size, xinc, yinc, color_index;
  963.      struct StrRec    * s_ptr;
  964.      struct TextRec    * text_ptr = ObjPtr->detail.t;
  965. ***************
  966. *** 1406,1409 ****
  967. --- 1418,1430 ----
  968.      y = ObjPtr->y;
  969.   
  970. +    if (colorDump)
  971. +    {
  972. +       color_index = ObjPtr->color;
  973. +       fprintf (FP, "%.3f %.3f %.3f setrgbcolor\n",
  974. +             ((float)tgifColors[color_index].red/maxRGB),
  975. +             ((float)tgifColors[color_index].green/maxRGB),
  976. +             ((float)tgifColors[color_index].blue/maxRGB));
  977. +    }
  978.      if (curFont == FONT_SYM)
  979.      {
  980. ***************
  981. *** 1555,1558 ****
  982. --- 1576,1580 ----
  983.      }
  984.   
  985. +    if (curFontDPI != text_ptr->dpi) text_ptr->dpi = curFontDPI;
  986.      RestoreCurFont ();
  987.   }
  988. ***************
  989. *** 1652,1656 ****
  990.      register struct StrRec    * s_ptr;
  991.   
  992. !    fprintf (FP, "text(%s,", colorMenuItems[ObjPtr->color]);
  993.      fprintf (FP, "%1d,%1d,%1d,%1d,%1d,%1d,%1d,%1d,%1d,%1d,%1d,%1d,%1d,[\n",
  994.            ObjPtr->x, ObjPtr->y, t_ptr->font, t_ptr->style, t_ptr->size,
  995. --- 1674,1678 ----
  996.      register struct StrRec    * s_ptr;
  997.   
  998. !    fprintf (FP, "text('%s',", colorMenuItems[ObjPtr->color]);
  999.      fprintf (FP, "%1d,%1d,%1d,%1d,%1d,%1d,%1d,%1d,%1d,%1d,%1d,%1d,%1d,[\n",
  1000.            ObjPtr->x, ObjPtr->y, t_ptr->font, t_ptr->style, t_ptr->size,
  1001. ***************
  1002. *** 1793,1797 ****
  1003.      (*ObjPtr)->detail.t = text_ptr;
  1004.   
  1005. !    if (!PRTGIF) RestoreCurFont ();
  1006.   }
  1007.   
  1008. --- 1815,1823 ----
  1009.      (*ObjPtr)->detail.t = text_ptr;
  1010.   
  1011. !    if (!PRTGIF)
  1012. !    {
  1013. !       if (curFontDPI != text_ptr->dpi) text_ptr->dpi = curFontDPI;
  1014. !       RestoreCurFont ();
  1015. !    }
  1016.   }
  1017.   
  1018. ***************
  1019. *** 1806,1810 ****
  1020.            PopCurFont ();
  1021.            ShowJust ();
  1022. !          ShowColor ();
  1023.            ShowCurFont ();
  1024.         }
  1025. --- 1832,1836 ----
  1026.            PopCurFont ();
  1027.            ShowJust ();
  1028. !          ShowColor (FALSE);
  1029.            ShowCurFont ();
  1030.         }
  1031. *** tgif.c.orig    Wed Dec 12 14:39:56 1990
  1032. --- tgif.c    Wed Dec 12 14:39:57 1990
  1033. ***************
  1034. *** 6,10 ****
  1035.   #ifndef lint
  1036.   static char RCSid[] =
  1037. !       "@(#)$Header: /n/kona/u/tangram/u/william/X11/TGIF/RCS/tgif.c,v 1.8 90/08/21 15:52:54 william Exp $";
  1038.   #endif
  1039.   
  1040. --- 6,10 ----
  1041.   #ifndef lint
  1042.   static char RCSid[] =
  1043. !       "@(#)$Header: /n/kona/u/tangram/u/william/X11/TGIF/RCS/tgif.c,v 1.10 90/08/30 13:32:13 william Exp $";
  1044.   #endif
  1045.   
  1046. ***************
  1047. *** 91,98 ****
  1048.      while (TRUE)
  1049.      {
  1050. -       DeallocStrings (&func_strp,&sp[0],&sp[1],&sp[2],&sp[3],&sp[4],&sp[5]);
  1051.         strcpy (s, func_strp);
  1052.         s[4] = '\0';
  1053.         if (strcmp (s, "Quit") == 0)
  1054.         {
  1055. --- 91,99 ----
  1056.      while (TRUE)
  1057.      {
  1058.         strcpy (s, func_strp);
  1059.         s[4] = '\0';
  1060. +       DeallocStrings (&func_strp,&sp[0],&sp[1],&sp[2],&sp[3],&sp[4],&sp[5]);
  1061.         if (strcmp (s, "Quit") == 0)
  1062.         {
  1063. *** version.c.orig    Wed Dec 12 14:40:02 1990
  1064. --- version.c    Wed Dec 12 14:40:03 1990
  1065. ***************
  1066. *** 6,11 ****
  1067.   #ifndef lint
  1068.   static char RCSid[] =
  1069. !       "@(#)$Header: /n/kona/u/tangram/u/william/X11/TGIF/RCS/version.c,v 1.19 90/08/27 10:32:54 william Exp $";
  1070.   #endif
  1071.   
  1072. ! char    * version_string = "1.15";
  1073. --- 6,11 ----
  1074.   #ifndef lint
  1075.   static char RCSid[] =
  1076. !       "@(#)$Header: /n/kona/u/tangram/u/william/X11/TGIF/RCS/version.c,v 1.23 90/11/10 13:53:37 william Exp $";
  1077.   #endif
  1078.   
  1079. ! char    * version_string = "1.19";
  1080. *** choice.e.orig    Wed Dec 12 14:40:08 1990
  1081. --- choice.e    Wed Dec 12 14:40:09 1990
  1082. ***************
  1083. *** 4,8 ****
  1084.    * Copyright (C) 1989, William Cheng.
  1085.    *
  1086. !  * @(#)$Header: /n/kona/u/tangram/u/william/X11/TGIF/RCS/choice.e,v 1.2 90/08/14 18:04:06 william Exp $
  1087.    */
  1088.   
  1089. --- 4,8 ----
  1090.    * Copyright (C) 1989, William Cheng.
  1091.    *
  1092. !  * @(#)$Header: /n/kona/u/tangram/u/william/X11/TGIF/RCS/choice.e,v 1.6 90/10/30 16:35:47 william Exp $
  1093.    */
  1094.   
  1095. ***************
  1096. *** 18,21 ****
  1097. --- 18,25 ----
  1098.   extern void    ShowCurFont ();
  1099.   extern void    ShowCurFontDPI ();
  1100. + extern void    ShowDash ();
  1101. + extern void    ShowFile ();
  1102. + extern void    ShowSpecial ();
  1103. + extern void    ShowRotate ();
  1104.   extern void    ShowLineWidth ();
  1105.   extern void    ShowWhereToPrint ();
  1106. *** color.e.orig    Wed Dec 12 14:40:13 1990
  1107. --- color.e    Wed Dec 12 14:40:14 1990
  1108. ***************
  1109. *** 4,8 ****
  1110.    * Copyright (C) 1989, William Cheng.
  1111.    *
  1112. !  * @(#)$Header: /n/kona/u/tangram/u/william/X11/TGIF/RCS/color.e,v 1.6 90/07/15 17:42:49 william Exp $
  1113.    */
  1114.   
  1115. --- 4,8 ----
  1116.    * Copyright (C) 1989, William Cheng.
  1117.    *
  1118. !  * @(#)$Header: /n/kona/u/tangram/u/william/X11/TGIF/RCS/color.e,v 1.9 90/10/27 16:29:44 william Exp $
  1119.    */
  1120.   
  1121. ***************
  1122. *** 13,16 ****
  1123. --- 13,19 ----
  1124.   extern int    * colorPixels;
  1125.   extern int    * xorColorPixels;
  1126. + extern XColor    * tgifColors;
  1127. + extern int    maxRGB;
  1128. + extern int    colorDump;
  1129.   
  1130.   extern void    DefaultColorArrays ();
  1131. *** edit.e.orig    Wed Dec 12 14:40:18 1990
  1132. --- edit.e    Wed Dec 12 14:40:19 1990
  1133. ***************
  1134. *** 4,8 ****
  1135.    * Copyright (C) 1989, William Cheng.
  1136.    *
  1137. !  * @(#)$Header: /n/kona/u/tangram/u/william/X11/TGIF/RCS/edit.e,v 1.2 90/07/04 21:07:20 william Exp $
  1138.    */
  1139.   
  1140. --- 4,8 ----
  1141.    * Copyright (C) 1989, William Cheng.
  1142.    *
  1143. !  * @(#)$Header: /n/kona/u/tangram/u/william/X11/TGIF/RCS/edit.e,v 1.3 90/11/01 15:19:52 william Exp $
  1144.    */
  1145.   
  1146. ***************
  1147. *** 13,14 ****
  1148. --- 13,15 ----
  1149.   extern void    BackProc ();
  1150.   extern void    ArrangeMenu ();
  1151. + extern void    UpdateSymbols ();
  1152. *** font.e.orig    Wed Dec 12 14:40:22 1990
  1153. --- font.e    Wed Dec 12 14:40:23 1990
  1154. ***************
  1155. *** 4,8 ****
  1156.    * Copyright (C) 1989, William Cheng.
  1157.    *
  1158. !  * @(#)$Header: /n/kona/u/tangram/u/william/X11/TGIF/RCS/font.e,v 1.4 90/08/15 16:58:35 william Exp $
  1159.    */
  1160.   
  1161. --- 4,8 ----
  1162.    * Copyright (C) 1989, William Cheng.
  1163.    *
  1164. !  * @(#)$Header: /n/kona/u/tangram/u/william/X11/TGIF/RCS/font.e,v 1.5 90/10/30 19:33:51 william Exp $
  1165.    */
  1166.   
  1167. ***************
  1168. *** 46,49 ****
  1169. --- 46,51 ----
  1170.   extern void    ChangeFont ();
  1171.   extern void    FontMenu ();
  1172. + extern void    ChangeFontDPI ();
  1173. + extern void    FontDPIMenu ();
  1174.   extern void    SaveCurFont ();
  1175.   extern void    RestoreCurFont ();
  1176. *** grid.e.orig    Wed Dec 12 14:40:28 1990
  1177. --- grid.e    Wed Dec 12 14:40:28 1990
  1178. ***************
  1179. *** 4,8 ****
  1180.    * Copyright (C) 1989, William Cheng.
  1181.    *
  1182. !  * @(#)$Header: /n/kona/u/tangram/u/william/X11/TGIF/RCS/grid.e,v 1.3 90/07/16 10:18:50 william Exp $
  1183.    */
  1184.   
  1185. --- 4,8 ----
  1186.    * Copyright (C) 1989, William Cheng.
  1187.    *
  1188. !  * @(#)$Header: /n/kona/u/tangram/u/william/X11/TGIF/RCS/grid.e,v 1.7 90/10/30 16:07:25 william Exp $
  1189.    */
  1190.   
  1191. ***************
  1192. *** 20,23 ****
  1193. --- 20,25 ----
  1194.   extern void    ToggleGridShown ();
  1195.   extern void    ToggleSnapOn ();
  1196. + extern void    ToggleWhereToPrint ();
  1197. + extern void    ToggleColorPostScript ();
  1198.   extern void    ZoomIn ();
  1199.   extern void    ZoomOut ();
  1200. *** names.e.orig    Wed Dec 12 14:40:35 1990
  1201. --- names.e    Wed Dec 12 14:40:36 1990
  1202. ***************
  1203. *** 4,14 ****
  1204.    * Copyright (C) 1989, William Cheng.
  1205.    *
  1206. !  * @(#)$Header: /n/kona/u/tangram/u/william/X11/TGIF/RCS/names.e,v 1.1 90/04/01 22:17:11 william Exp $
  1207.    */
  1208.   
  1209.   extern char    curDomainName[];
  1210.   
  1211.   extern void    InitNames ();
  1212.   extern void    CleanUpNames ();
  1213.   extern int    SelectFileName ();
  1214.   extern int    SelectDomain ();
  1215. --- 4,25 ----
  1216.    * Copyright (C) 1989, William Cheng.
  1217.    *
  1218. !  * @(#)$Header: /n/kona/u/tangram/u/william/X11/TGIF/RCS/names.e,v 1.17 90/11/07 01:26:37 william Exp $
  1219.    */
  1220.   
  1221.   extern char    curDomainName[];
  1222. + extern char    curDomainPath[];
  1223. + extern char    curDir[];
  1224. + extern char    curSymDir[];
  1225.   
  1226. + extern void    ParseSymPath ();
  1227.   extern void    InitNames ();
  1228. + extern void    UpdateSymInfo ();
  1229. + extern void    UpdateDirInfo ();
  1230.   extern void    CleanUpNames ();
  1231.   extern int    SelectFileName ();
  1232. + extern int    SelectSymbolName ();
  1233.   extern int    SelectDomain ();
  1234. + extern void    SetCurDir ();
  1235. + extern int    NameInCurDir ();
  1236. + extern int    DirInSymPath ();
  1237. + extern int    GetSymbolPath ();
  1238. *** pattern.e.orig    Wed Dec 12 14:40:40 1990
  1239. --- pattern.e    Wed Dec 12 14:40:41 1990
  1240. ***************
  1241. *** 4,15 ****
  1242.    * Copyright (C) 1989, William Cheng.
  1243.    *
  1244. !  * @(#)$Header: /n/kona/u/tangram/u/william/X11/TGIF/RCS/pattern.e,v 1.3 90/07/11 21:25:59 william Exp $
  1245.    */
  1246.   
  1247. ! extern int     objFill;
  1248. ! extern int     lineStyle;
  1249. ! extern int     lineWidth;
  1250. ! extern int     penPat;
  1251. ! extern int     curSpline;
  1252.   
  1253.   extern void    ChangeAllSelFill ();
  1254. --- 4,16 ----
  1255.    * Copyright (C) 1989, William Cheng.
  1256.    *
  1257. !  * @(#)$Header: /n/kona/u/tangram/u/william/X11/TGIF/RCS/pattern.e,v 1.4 90/10/26 18:33:32 william Exp $
  1258.    */
  1259.   
  1260. ! extern int    objFill;
  1261. ! extern int    lineStyle;
  1262. ! extern int    lineWidth;
  1263. ! extern int    penPat;
  1264. ! extern int    curSpline;
  1265. ! extern int    curDash;
  1266.   
  1267.   extern void    ChangeAllSelFill ();
  1268. ***************
  1269. *** 17,20 ****
  1270. --- 18,22 ----
  1271.   extern void    ChangeAllSelLineType ();
  1272.   extern void    ChangeAllSelLineWidth ();
  1273. + extern void    ChangeAllSelDashes ();
  1274.   extern void    ChangeAllSelPen ();
  1275.   extern void    ToggleAllSelLineType ();
  1276. *** raster.e.orig    Wed Dec 12 14:40:46 1990
  1277. --- raster.e    Wed Dec 12 14:40:47 1990
  1278. ***************
  1279. *** 4,8 ****
  1280.    * Copyright (C) 1989, William Cheng.
  1281.    *
  1282. !  * @(#)$Header: /n/kona/u/tangram/u/william/X11/TGIF/RCS/raster.e,v 1.2 90/07/16 09:10:17 william Exp $
  1283.    */
  1284.   
  1285. --- 4,8 ----
  1286.    * Copyright (C) 1989, William Cheng.
  1287.    *
  1288. !  * @(#)$Header: /n/kona/u/tangram/u/william/X11/TGIF/RCS/raster.e,v 1.7 90/10/30 16:31:15 william Exp $
  1289.    */
  1290.   
  1291. ***************
  1292. *** 19,33 ****
  1293.   extern Pixmap    patPixmap[];
  1294.   extern Pixmap    lineWidthPixmap[];
  1295. - extern Pixmap    lineStylePixmap[];
  1296.   extern Pixmap    lineTypePixmap[];
  1297.   extern Pixmap    justPixmap[];
  1298.   extern Pixmap    alignHoriPixmap[];
  1299.   extern Pixmap    alignVertPixmap[];
  1300. ! extern Pixmap    shortLineWidthPixmap[];
  1301.   extern Pixmap    whereToPrintPixmap[];
  1302. ! extern Pixmap    shortLineTypePixmap[];
  1303.   extern Pixmap    shortLineStylePixmap[];
  1304.   
  1305.   extern int    pat_w[], pat_h[];
  1306.   
  1307.   extern void    InitPattern ();
  1308. --- 19,40 ----
  1309.   extern Pixmap    patPixmap[];
  1310.   extern Pixmap    lineWidthPixmap[];
  1311.   extern Pixmap    lineTypePixmap[];
  1312. + extern Pixmap    dashPixmap[];
  1313. + extern Pixmap    lineStylePixmap[];
  1314.   extern Pixmap    justPixmap[];
  1315.   extern Pixmap    alignHoriPixmap[];
  1316.   extern Pixmap    alignVertPixmap[];
  1317. ! extern Pixmap    filePixmap;
  1318. ! extern Pixmap    specialPixmap;
  1319. ! extern Pixmap    rotatePixmap[];
  1320.   extern Pixmap    whereToPrintPixmap[];
  1321. ! extern Pixmap    shortLineWidthPixmap[];
  1322.   extern Pixmap    shortLineStylePixmap[];
  1323. + extern Pixmap    shortLineTypePixmap[];
  1324. + extern Pixmap    shortDashPixmap[];
  1325.   
  1326.   extern int    pat_w[], pat_h[];
  1327. + extern int    dashListLength[];
  1328. + extern char    *dashList[];
  1329.   
  1330.   extern void    InitPattern ();
  1331. *** select.e.orig    Wed Dec 12 14:40:51 1990
  1332. --- select.e    Wed Dec 12 14:40:52 1990
  1333. ***************
  1334. *** 4,8 ****
  1335.    * Copyright (C) 1989, William Cheng.
  1336.    *
  1337. !  * @(#)$Header: /n/kona/u/tangram/u/william/X11/TGIF/RCS/select.e,v 1.2 90/07/06 18:02:44 william Exp $
  1338.    */
  1339.   
  1340. --- 4,8 ----
  1341.    * Copyright (C) 1989, William Cheng.
  1342.    *
  1343. !  * @(#)$Header: /n/kona/u/tangram/u/william/X11/TGIF/RCS/select.e,v 1.3 90/11/01 16:42:13 william Exp $
  1344.    */
  1345.   
  1346. ***************
  1347. *** 23,26 ****
  1348. --- 23,27 ----
  1349.   extern void    DelAllCutSel ();
  1350.   extern void    UndoDelete ();
  1351. + extern void    PushToCutBuffer ();
  1352.   extern void    CopySelToCut ();
  1353.   extern void    DelAllSelObj ();
  1354. ---------------------------------> cut here <---------------------------------
  1355. -- 
  1356. Bill Cheng // UCLA Computer Science Department // (213) 206-7135
  1357. 3277 Boelter Hall // Los Angeles, California 90024 // USA
  1358. william@CS.UCLA.EDU      ...!{uunet|ucbvax}!cs.ucla.edu!william
  1359.  
  1360. --
  1361. Dan Heller
  1362. ------------------------------------------------
  1363. O'Reilly && Associates               Zyrcom Inc
  1364. Senior Writer                   President
  1365. argv@ora.com            argv@zipcode.com
  1366.